/**  
 * All rights Reserved, Designed By daiw
 * @Title:  SysDeptService.java   
 * @Package org.easy.system.manage.service   
 * @Description:    TODO (用一句话描述该文件做什么)   
 * @author: daiw     
 * @date:   2019年10月21日 上午10:39:16   
 * @Copyright: 2019 daiw Inc. All rights reserved. 
 */
package org.easy.system.manage.service;

import java.util.List;

import org.easy.system.manage.dto.DeptDto;
import org.easy.system.manage.dto.DeptQueryParam;
import org.easy.system.manage.dto.SaveDeptParam;
import org.easyframework.core.entity.ProcessResult;
import org.system.manage.facade.entity.UserInfoDto;

/**
 * @ClassName: SysDeptService
 * @Description: 部门服务接口
 * @author: daiw
 * @date: 2019年10月21日 上午10:39:16
 */
public interface SysDeptService {

	/**
	 * 查询顶层部门列表
	 * 
	 * @return
	 */
	ProcessResult<DeptDto> queryTopDept();

	ProcessResult<List<DeptDto>> queryByParentId(Long parentId);

	ProcessResult<?> save(SaveDeptParam saveDeptParam, UserInfoDto userInfo);

	ProcessResult<?> update(DeptDto deptDto, UserInfoDto userInfo);

	ProcessResult<List<DeptDto>> queryByPage(DeptQueryParam deptQueryParam);

	ProcessResult<DeptDto> queryDetail(Long deptId);

	ProcessResult<?> updateStatus(Long deptId, Integer status, UserInfoDto userInfo);

}
